package cn.yunhe.service;

import cn.yunhe.entity.ExamPaper;
import cn.yunhe.entity.Question;
import com.github.pagehelper.Page;

import java.util.List;
import java.util.Map;

public interface ExamPaperService {

    /**
     * 根据知识点分类分页模糊查询试卷
     * @return
     * author:guohanyu
     */
    Page getPapersByFieldAndPointAndName(Map<String, Object> map);


    /**
     * 查询所有试卷
     * @return
     */
    int getPaperCount();

    /**
     * 发布考试,触发试题查询,插入等操作,需添加事务
     * @return
     * Map中包含数据(examPaper相关信息,questionCount,pointId集合)
     * 郭瀚钰
     */
    boolean addExamPaper(Map map);

    /**
     * 根据Id获取试卷信息
     * @param examPaperId
     * @return
     * guohanyuu
     */
    ExamPaper getExamPaperById(Integer examPaperId);


    /**
     * 根据传入试卷Id 获取所属试题集合
     * @param examPaperId
     * @return
     * guohanyu
     */
    List<Question> getQuestionsByExamPaperId(Integer examPaperId);

    /**
     * 根据传入试卷Id集合,批量删除试卷
     * @param examPaperIdList
     * @return
     * guohanyu
     */
    boolean delExamPaperById(List<Integer> examPaperIdList);


    /**
     * 从试卷中移除某道题目
     * @param map 封装数据 试卷examPaperId,试题questionId,试题类型questionTypeId
     * @return
     * guohanyu
     */
    boolean removeQuestionFromExamPaper(Map<String,Object> map);

    /**
     * 选择试题添加试卷
     * @param map 封装试卷信息,题目集合
     * @return
     */
    boolean addArtificialExamPaper(Map<String,Object> map);
}
